package com.avantis.admin.service;

import com.avantis.common.entity.SysSerialNumber;
import com.avantis.common.entity.query.SysSerialNumberQuery;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @Author: tracywang
 * @Date: 2019/2/15
 * @Descrption:
 */

public interface SysSerialNumberService {

    void saveSysSerialNumber(SysSerialNumber sysSerialNumber);

    SysSerialNumber findByUuid(String sysSerialNumberId);

    List<SysSerialNumber> findSysSerialNumberCriteria();

    void modifySysSerialNumber(SysSerialNumber sysSerialNumber);

    void deleteSysSerialNumber(String sysSerialNumberId);

    public String generateSerialNumberByModelCode(String moduleCode);

    /**
     * 设置最小值
     * @param value 最小值，要求：大于等于零
     * @return      流水号生成器实例
     */
    SysSerialNumberService setMin(int value);

    /**
     * 设置最大值
     * @param value 最大值，要求：小于等于Long.MAX_VALUE ( 9223372036854775807 )
     * @return      流水号生成器实例
     */
    SysSerialNumberService setMax(long value);

    /**
     * 设置预生成流水号数量
     * @param count 预生成数量
     * @return      流水号生成器实例
     */
    SysSerialNumberService setPrepare(int count);

}
